#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：V2 
@File    ：mixue.py
@IDE     ：PyCharm 
@Author  ：郭星
@Date    ：2025/9/21 21:51 
'''
# -*- coding: utf-8 -*-
# Repaint the extracted Excel pixel art
# pip install openpyxl
from openpyxl import Workbook
from openpyxl.styles import PatternFill
from openpyxl.utils import get_column_letter

GRID = [["", "#FFC000", "", "#FFC000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["#FFC000", "", "#FFC000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "#FFC000", "", "#FFC000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["#FFC000", "", "#FFC000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "#FFC000", "", "#FFC000", "", "", "", "", "", "", "", "", "", "", "", "", "", "#FFC000", "#FFC000", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "#FFC000", "", "", "", "", "", "", "", "", "", "", "", "", "", "#FFC000", "#FFC000", "#FFC000", "#FFC000", "#FFC000", "#FFC000", "", "", "", "", "", "", "", ""], ["", "#FFC000", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "", "", "", "", "#FFC000", "#FFC000", "#FFC000", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "#FFC000", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", ""], ["", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "", "", "", ""], ["", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "#FF0000", "", "", "", ""], ["", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "#FF0000", ""], ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000"], ["#FF0000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000"], ["#FF0000", "", "", "", "#FF0000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000"], ["#FF0000", "", "", "", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "#FF0000", "#FF0000", "#FF0000", "#FF0000"], ["#FF0000", "", "", "", "#FF0000", "#FF0000", "#FF0000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""], ["#FF0000", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""]]
PALETTE = ["#FF0000", "#FFC000"]

def paint(ws, start_row=1, start_col=1, cell_size=12):
    # set roughly square cells
    rows, cols = len(GRID), len(GRID[0])
    for j in range(start_col, start_col+cols):
        ws.column_dimensions[get_column_letter(j)].width = cell_size/6.5
    for i in range(start_row, start_row+rows):
        ws.row_dimensions[i].height = cell_size

    for i, row in enumerate(GRID, start=start_row):
        for j, color in enumerate(row, start=start_col):
            if color:
                # color is '#RRGGBB', but PatternFill expects 'RRGGBB'
                hex6 = color[1:]
                ws.cell(i, j).fill = PatternFill(start_color=hex6, end_color=hex6, fill_type="solid")

if __name__ == "__main__":
    wb = Workbook()
    ws = wb.active
    ws.title = "Repainted"
    paint(ws, start_row=1, start_col=1, cell_size=12)
    wb.save("repainted_from_grid.xlsx")
    print("Saved repainted_from_grid.xlsx")
